package com.witsight.hibernate.dao;

import java.util.List;

import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
import org.springframework.data.jpa.repository.Query;

import com.witsight.hibernate.model.City;

/**   
 * 说明：[]
 * @Title: CityRepository.java 
 * @Package com.witsight.hibernate.dao 
 * @See: []
 * Copyright: Copyright (c) 2017
 * Company:sany huax witsight team by product
 * @author: fuyp  
 * @date: 2017年9月12日 下午2:52:19 
 * @version: V1.0
 *
 */
public interface CityRepository extends BaseJpaRepository<City, String>,ICityRepository {
	/**
	 * 
	 * (non-Javadoc)  
	 * @Title: findAll
	 * @See: {@link BaseJpaRepositoryImpl}
	 * @author penght
	 * @param pageable
	 * @return 
	 * @date: 2017年10月18日 上午9:32:32
	 */
	Page<City> findAll(Pageable pageable);
	/**
	 * 
	 * (non-Javadoc)  
	 * @Title: findAll1
	 * @See: {@link BaseJpaRepositoryImpl}
	 * @author penght
	 * @param pageable
	 * @return 
	 * @date: 2017年10月18日 上午9:32:32
	 */
	@Query(name="City.findSqlCityPage", nativeQuery=true)
	List findAll1();
	/**
	 * 
	 * (non-Javadoc)  
	 * @Title: 测试自定义查询
	 * @See: {@link BaseJpaRepositoryImpl}
	 * @author penght
	 * @param pageable
	 * @return 
	 * @date: 2017年10月18日 上午9:32:32
	 */
	City findCityTest();
	/**
	 * 
	 * (non-Javadoc)  
	 * @Title: 测试spring自带的根据字段过滤查询
	 * @See: {@link BaseJpaRepositoryImpl}
	 * @author penght
	 * @param pageable
	 * @return 
	 * @date: 2017年10月18日 上午9:32:32
	 */
	City findByName(String name);
	/**
	 * 
	 * (non-Javadoc)  
	 * @Title: 测试spring自带的根据字段过滤查询和排序
	 * @See: {@link BaseJpaRepositoryImpl}
	 * @author penght
	 * @param pageable
	 * @return 
	 * @date: 2017年10月18日 上午9:32:32
	 */
	List<City> findByNameOrderByNameDesc(String name);
	/**
	 * 
	 * (non-Javadoc)  
	 * @Title: 测试spring自带的根据字段过滤查询和去重复
	 * @See: {@link BaseJpaRepositoryImpl}
	 * @author penght
	 * @param pageable
	 * @return 
	 * @date: 2017年10月18日 上午9:32:32
	 */
	List<City> findDistinctCityByName(String name);
	/**
	 * 
	 * (non-Javadoc)  
	 * @Title: 测试spring自带的根据字段过滤和取前10条
	 * @See: {@link BaseJpaRepositoryImpl}
	 * @author penght
	 * @param pageable
	 * @return 
	 * @date: 2017年10月18日 上午9:32:32
	 */
	Page<City> queryFirst10ByName(String name, Pageable pageable);
	/**
	 * 
	 * (non-Javadoc)  
	 * @Title: 测试自定义保存
	 * @See: {@link BaseJpaRepositoryImpl}
	 * @author penght
	 * @param pageable
	 * @return 
	 * @date: 2017年10月18日 上午9:32:32
	 */
	City saveTest();
	/**
	 * 
	 * (non-Javadoc)  
	 * @Title: 测试自定义删除
	 * @See: {@link BaseJpaRepositoryImpl}
	 * @author penght
	 * @param pageable
	 * @return 
	 * @date: 2017年10月18日 上午9:32:32
	 */
	void d1eleteTest(String id);
	/**
	 * 
	 * (non-Javadoc)  
	 * @Title: 测试自定义更新
	 * @See: {@link BaseJpaRepositoryImpl}
	 * @author penght
	 * @param pageable
	 * @return 
	 * @date: 2017年10月18日 上午9:32:32
	 */
	City u1pdateTest();
}
